import request from '@/utils/request'
// import type { IMenuListResp } from '@/views/system/type'

// function mockRequest<T>(data: any): Promise<T> {
//   return new Promise((resolve: any) => {
//     setTimeout(resolve(data), 2 * 1000)
//   })
// }

// function mockMenuData() {
//   return [
//     {
//       id: 1,
//       key: 1,
//       parentName: '',
//       icon: 'icon1',
//       name: 'Case',
//       type: '1',
//       authority: '',
//       route: '/case',
//       component: '/page/case/index',
//       order: 1,
//       status: '1',
//       createdTime: '2024-01-01 12:00:00',
//       children: [
//         {
//           id: 4,
//           key: 4,
//           name: 'query',
//           type: '2',
//           authority: 'case@query',
//           order: 1,
//           status: '1',
//           createdTime: '2024-01-04 12:00:00',
//         },
//         {
//           id: 5,
//           key: 5,
//           parentName: 'Case',
//           order: 1,
//           status: '1',
//           name: 'Case Detail',
//           icon: 'icon4',
//           type: '1',
//           authority: '',
//           route: '/case/detail',
//           component: '/page/case/detail',
//           createdTime: '2024-01-05 12:00:00',
//           children: [
//             {
//               id: 6,
//               key: 6,
//               name: 'save',
//               type: '2',
//               authority: 'case@save',
//               order: 1,
//               status: '1',
//               createdTime: '2024-01-06 12:00:00',
//             },
//           ],
//         },
//       ],
//     },
//     {
//       id: 2,
//       key: 2,
//       parentName: '',
//       order: 1,
//       status: '1',
//       name: 'Case Compare',
//       icon: 'icon2',
//       type: '1',
//       authority: '',
//       route: '/case/delete',
//       component: '/page/case/delete',
//       createdTime: '2024-01-0214:00:00',
//     },
//     {
//       id: 3,
//       key: 3,
//       parentName: '',
//       order: 1,
//       status: '1',
//       name: 'Login History',
//       icon: 'icon3',
//       type: '1',
//       authority: '',
//       route: '/compare',
//       component: '/page/compare/add',
//       createdTime: '2024-01-03 16:00:00',
//     },
//   ]
// }
// function mockMenuData2() {
//   return [
//     {
//       id: 1,
//       key: 1,
//       pid: null,
//       name: 'UserLayout',
//       path: '/user',
//       redirect: '/user/login',
//       meta: null,
//       active: 0,
//       createdTime: '2023-01-01 15:00:00',
//     },
//     {
//       id: 2,
//       key: 2,
//       pid: null,
//       name: 'BasicLayout',
//       path: '/',
//       redirect: '/cases/index',
//       meta: '{ title: \'Cases\' }',
//       active: 1,
//       createdTime: '2023-04-01 16:00:00',
//     },
//     {
//       id: 3,
//       key: 3,
//       pid: 2,
//       name: 'Cases',
//       path: '/cases/index',
//       redirect: '',
//       meta: '{ title: \'Cases\', icon: \'ContainerOutlined\' }',
//       active: 1,
//       createdTime: '2023-01-01 12:00:00',
//     },
//     {
//       id: 4,
//       key: 4,
//       pid: 2,
//       name: 'Cases Detail',
//       path: '/cases/detail',
//       redirect: '',
//       meta: '{ title: \'Cases Detail\', icon: \'ContainerOutlined\' }',
//       active: 0,
//       createdTime: '2024-01-02 12:00:00',
//     },
//   ]
// }
// export async function addMenu(_data: any) {
//   return mockRequest<{ code: number, message: string }>({
//     code: 200,
//     message: 'add success',
//   })
// }
// export async function deleteMenu(_data: any) {
//   return mockRequest<{ code: number, message: string }>({
//     code: 200,
//     message: 'delete success',
//   })
// }
// export async function updateMenu(_data: any) {
//   return mockRequest<{ code: number, message: string }>({
//     code: 200,
//     message: 'update success',
//   })
// }

// export async function getMenu() {
//   return await request({
//     url: '/menu/list',
//     method: 'get',
//   })
// }

export async function getMenu(params: any = { pageNo: 1, pageSize: 10 }) {
  return await request({
    url: '/menu/list',
    method: 'get',
    params,
  }).then((res: any) => {
    return {
      data: res.data.menuList,
      totalCount: res.data.totalCount,
    }
  })
}

export async function addMenu(data: any) {
  return await request({
    url: '/menu/create',
    method: 'post',
    data,
  })
}

export async function updateMenu(data: any) {
  return await request({
    url: '/menu/update',
    method: 'put',
    data,
  })
}

export async function deleteMenu(data: any) {
  return await request({
    url: '/menu/delete',
    method: 'delete',
    data,
  })
}
